Telecommunications systems have grown more complex as feature sets increase in both number and complexity. The deployment of new features within conventional sequential state-machine-based call models is increasingly difficult to accomplish due to an increase in the types of traffic carried coupled with subscriber demands for increased connectivity and rapid deployment of new features.
State-machine-based call models have traditionally been implemented for call processing because they facilitate the partitioning of call processing into a granular set of actions based upon the current state of the state machine and the corresponding state of a call. Conventional call models based upon state machines manage call events by call processing activity within a state in response to a call processing trigger event or by a transition to another state. State machines are often nested within other state machines and multiple levels of nesting with large numbers of states are common within state machine-based call models. Because states of state machines have traditionally been designed to be sequential in nature and to rely upon certain timing constraints and actions of other states, the states are highly inter-dependent and rely upon one another to complete the respective partitions of call processing in a timely fashion.
As subscriber demands and the associated system complexity have increased overtime, the nested state machine model has become increasingly difficult to maintain and modify. Each new feature that is added to the call model typically results in additional activity within a state, a new state, or a new nested state machine. Further, new features often require concurrent processing of multiple actions—a task that a single sequential monolithic state machine is inadequately designed to accommodate.
Voice over Internet protocol (VoIP) is an example of a technological advancement that has stressed difficulties associated with the conventional state-machine-based call model. As well, feature sets, such as, call waiting and call forwarding, have increased in number and complexity. Implementing these new technological advancements and features into the monolithic sequential state-machine-based call model has become increasingly difficult to accomplish because so many different timing aspects and states are involved. As new features are integrated into conventional state machines, the state machines become unwieldy and even more difficult to modify for future enhancements. Even well-designed synchronous state machines may experience problems if processing takes longer than what is allotted for a given call state.
Accordingly, in light of these difficulties associated with conventional monolithic sequential state-machine-based call processing, there exists a need for improved methods, systems, and computer program products for transaction-based IP telephony call processing.